草庐IT

c++ - Visual Studio 和 Boost::Test

全部标签

c++ - 如何仅使用 boost/standard 库在 C++ 中读/写图像?

这可能吗?图像的格式无关紧要,但我必须能够打开它,将像素数据读入某种数组,使用修改后的像素数据集创建新图像。谢谢! 最佳答案 Boost.GIL有好的videotutorial它向您展示了如何以非常通用但高效的方式读取/写入和处理原始图像数据。 关于c++-如何仅使用boost/standard库在C++中读/写图像?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/9761910

c++ - 如何制作简化版的 boost::variant?

我有一组更简单的要求,不需要太多变体的机制。如果可以的话,我也不想依赖boost。我需要存储编译时已知的任意类型(可能是void)。它要么是可移动构造的,要么是可复制构造的,如果其中任何一个抛出异常,则允许包含的值未定义。除了这个值,它还可以包含::std::exception_ptr或::std::error_code.::boost::variant如果T会起作用允许无效。除了::boost::variant提供我在这种情况下实际上不需要的“永不空保证”。而且,如果我理解它是如何正确工作的,它与可以移动但不能复制的类型不太兼容。现在我正在编写大量重复的代码,我不应该编写这些代码来分

c++ - C++ 中的复杂矩阵指数

是否真的可以用c/c++计算复数矩阵的矩阵指数?我已经成功地使用GNU科学图书馆的blas函数计算了两个复数矩阵的乘积。对于matC=matA*matB:gsl_blas_zgemm(CblasNoTrans,CblasNoTrans,GSL_COMPLEX_ONE,matA,matB,GSL_COMPLEX_ZERO,matC);而且我已经通过使用未记录的方法获得了矩阵的矩阵指数gsl_linalg_exponential_ss(&m.matrix,&em.matrix,.01);但这似乎不接受复杂的论点。有没有办法做到这一点?我曾经认为C++无所不能。现在我认为它已经过时和神秘了…

c++ - 基于boost::threads的队列算法

假设有一个std::deque指针队列,指向要执行的任务,确保同时运行的线程数限制在CPU内核数内的最佳方法是什么?即,任务完成后,其余任务随后启动。我为之前的帖子制作了以下代码,我现在遇到的问题是我不确定实现我所描述的内容的最佳策略,并且认为这可能值得征求意见。请注意,我上面提到的“std::deque指针队列”并不是指代码中的dequemtasks。我不希望从这个双端队列中弹出任务,因为我正在使用它来存储以前完成的任务。在程序中输入类似taskp1p2p3p4p5的提示,然后输入info来检查每个任务的当前状态。请注意,目前所有5个任务大约同时完成。然而,我真正想要的是完成前2个(

c++ - malloc 失败条件

我正在复习c,重做一些旧的练习,并在运行此代码段时得到一些不寻常的结果(我知道它泄漏但想了解系统允许多少..)#include#includeintmain(intargc,char*argv[]){void*page=0;intindex;index=0;while(1){page=malloc(1073741824);//1GBif(!page)break;++index;}printf("memoryfailedat%d\n",index);return0;}我实际上得到:memoryfailedat131070这表明它认为它分配了131070x1GB内存(大量泄漏)我之前知道m

c++ - Microsoft 的源注释语言 (SAL)——有什么方法可以利用它?

有什么方法可以利用微软的SAL,例如通过保留此信息的C解析器?还是由Microsoft制作,仅供Microsoft内部使用?它对许多任务都非常有用,例如为其他语言创建C库绑定(bind)。 最佳答案 不确定“利用”是什么意思,但目前VS2011Beta在执行代码分析时使用SAL注释,通过/analyze选项。注释只是来自sal.h的纯宏Microsoft鼓励使用(至少在VS环境中)。如果你只是想在预处理步骤后保留信息,你可以只将宏扩展到自己或者只是改变一个现有的开源预处理器来排除符号(VS也有一些扩展选项来自SAL宏的),但是使用注

c++ - boost::python 函数调用中 boost::shared_ptr 的转换

考虑以下示例:#include"Python.h"#include#includeclassA{};classB:publicA{};voidfoo(boost::shared_ptr&aptr){}BOOST_PYTHON_MODULE(mypy){usingnamespaceboost::python;class_>("A",init());class_,bases>("B",init());def("foo",foo);}如果我调用python代码importmypyb=mypy.B()mypy.foo(b)我明白了ArgumentError:Pythonargumenttype

c++ - BeautifulSoup 的 C/CPP 版本,特别是在处理格式错误的 HTML 方面

是否有任何关于c/cpp库的建议,可以用来轻松地(尽可能多地)解析/迭代/操作HTML流/文件,假设某些可能格式不正确,即标签未关闭等。BeautifulSoup 最佳答案 HTMLparser来自Libxml易于使用(下面的简单教程)并且即使在格式错误的HTML上也能很好地工作。编辑:原始博文已无法访问,因此我已将内容复制粘贴到此处。Parsing(X)HTMLinCisoftenseenasadifficulttask.It'struethatCisn'ttheeasiestlanguagetousetodevelopapars

c++ - 如何同时等待 I/O 完成端口和事件?

有什么方法可以实现吗?例如,我有一个I/O完成端口,10个工作线程正在从中提取任务。每个任务都与一个对象相关联。有些对象无法同时处理,因此如果一个线程正在处理其中一个对象,而第二个线程执行需要该对象的任务,则第二个线程必须等待第一个线程完成。作为解决方法,对象可以有一个在释放时发出信号的事件。如果一个线程因为接收到的任务需要一个锁定的对象而“卡住”,它可以等待锁定的对象被释放,或者等待一个新的任务排队。如果它接收到一个新任务,它将把它无法处理的任务推回队列。我知道其他方法,但这似乎是应该存在的功能。这可以通过WindowsAPI实现吗? 最佳答案

c++ - boost asio async_read_some 只读取数据片段

我有一个使用boost::asio进行读/写操作的C++服务器-写出消息工作正常-但由于某种原因我无法读取工作我从客户端发送给它的消息是1516位无符号短裤-我的测试消息是这样的:1,34,7,0,0,0,0,0,4,0,0,0,0,0,0现在在服务器上我经常看到这样的事情。读取通常被分解和/或乘以256这是一次发送两次readinglength=8:[134700000]readinglength=3:[102400]readinglength=3:[000]readinglength=8:[134700000]readinglength=6:[102400000]这是第二次发送两次